/**   
 * @Title: DuDesignUtil.java 
 * @Package org.playgod1984.du.util 
 * @Description: TODO(用一句话描述该文件做什么) 
 * @author playgod playgod1984@163.com  
 * @date 2014年10月16日 下午6:44:32 
 * @version V1.0   
 */
package org.playgod1984.du.base.util;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import java.util.Map.Entry;

import com.jfinal.plugin.activerecord.Record;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

/** 
 * @ClassName: DuDesignUtil 
 * @Description: TODO(这里用一句话描述这个类的作用) 
 * @author playgod playgod1984@163.com 
 * @date 2014年10月16日 下午6:44:32 
 *  
 */
@SuppressWarnings("all")
public class DuDesignUtil {
	/**
	 * @Title: parseJSON2Map
	 * @author:playgod playgod1984@163.com 
	 * @Description: TODO(这里用一句话描述这个方法的作用) 
	 * @param @param jsonStr
	 * @param @return    设定文件 
	 * @return Map<String,Object>    返回类型 
	 * @throws
	 */
	public static Map<String, Object> parseJSON2Map(String jsonStr){
        Map<String, Object> map = new HashMap<String, Object>();
        //最外层解析
        JSONObject json = JSONObject.fromObject(jsonStr);
        for(Object k : json.keySet()){
            Object v = json.get(k); 
            //如果内层还是数组的话，继续解析
            if(v instanceof JSONArray){
                List<Map<String, Object>> list = new ArrayList<Map<String,Object>>();
                Iterator<JSONObject> it = ((JSONArray)v).iterator();
                while(it.hasNext()){
                    JSONObject json2 = it.next();
                    list.add(parseJSON2Map(json2.toString()));
                }
                map.put(k.toString(), list);
            } else {
                map.put(k.toString(), v);
            }
        }
        return map;
    }
	/**
	 * 
	 * @Title: getUUID32 获取32位ID
	 * @author:playgod playgod1984@163.com 
	 * @Description: TODO(这里用一句话描述这个方法的作用) 
	 * @param @return    设定文件 
	 * @return String    返回类型 
	 * @throws
	 */
	public static synchronized String getUUID32(){
		UUID localUUID = UUID.randomUUID();
	    return localUUID.toString().replaceAll("-", "");
	}
	
	/**
	 * @Title: json2ListOfMap
	 * @author:playgod playgod1984@163.com 
	 * @Description: 专门为JFinal定制的json转Record方法 
	 * @param @param jsonString
	 * @param @return    设定文件 
	 * @return List<Record>    返回类型 
	 * @throws
	 */
	public static synchronized List<Record> json2ListOfMap(String jsonString){
		JSONArray jsonArray = JSONArray.fromObject(jsonString);  
		List<Record> list = new ArrayList<Record>(); 
        List<Map<String,Object>> mapListJson = (List)jsonArray;  
        for (int i = 0; i < mapListJson.size(); i++) {  
            Map<String,Object> obj=mapListJson.get(i);  
            Record r= new Record();  
            for(Entry<String,Object> entry : obj.entrySet()){  
                r.set(entry.getKey(), entry.getValue());
            }  
            list.add(r);
        }  
        return list;
	}
}
